home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 2.iso / magl / magl.doc next >
Text File  |  1991-10-19  |  13KB  |  294 lines

  1. /*
  2.  *            'Magl.exp'    for FM-TOWNS
  3.  *
  4.  *        - MAKIchan Graphic loader is not 鮪だ! -
  5.  *
  6.  *              programmed by MALOR
  7.  */
  8.  
  9. -----------------------------------------------------------------------
  10. 【 名  前 】 magl.exp                   Version 0.41 Update 1991/05/03
  11. 【 作  者 】 MALOR NBF02121@NIFTY FM-02204@Oh!FMTOWNS-NET J85@JATIC町田
  12. 【 内  容 】 まぐろーだー(MAKI chan Graphic Loader = MAGLoader)
  13. 【動作環境】 MS-DOS + T-BIOS または TownsOS
  14. -----------------------------------------------------------------------
  15. 【 概 要 】
  16.  というわけで、まぐろーだーのTOWNS版です。
  17.  
  18. 【 履 歴 】
  19.     1991/03/08    v0.01    正常に展開されたぞ
  20.         10    v0.02    アセンブラ化して高速化!98にやっと勝てた…
  21.                 さらに、文字列操作命令を導入してみた。
  22.         13    v0.03    ビット操作命令の導入を考えるが、サイクル数が
  23.                 違わないので、やっぱりやめた(T_T)
  24.                 256色/DOS互換モード対応・アセンブラ化
  25.                 オフセットロード対応
  26.                 画面はみ出しチェック強化(う~ん、手抜きじゃ)
  27.         18    v0.04    MKI対応のため、仕様変更
  28.         22    v0.05    ループ展開で、改良?改悪?
  29.         25    v0.06    98版で採用されている1パス方式を試してみるが、
  30.                 今のバージョンに勝てなかった....
  31.                 だから、実は何も変わっていない。徒労だ....
  32.         29    v0.10    MKIフォーマットにも対応
  33.         30    v0.11    正式公開版仕様書を見てビックリ!
  34.                 随分変わっているんですね。で、手直しバージョン
  35.                 おまけで、ワイルドカード対応
  36.          04/02    v0.20    ライブラリ化で大改造
  37.                 メモリに展開するようにして、大画面対応
  38.                 表示後の拡大縮小・スクロールに対応
  39.         09    v0.30    展開時のエフェクト機能装備
  40.         17    v0.31    yamato.magが表示できないバグ修正
  41.                 データの誤認バグ修正
  42.                 TOWNS-OS上でキー入力ができないバグ修正
  43.                 エフェクト時に480ライン目が表示されないバク修正
  44.         27    v0.35    「256色まぐでーた」に本当に対応 :-)
  45.                 差分まぐろが表示できないバグ修正
  46.                 画像の左上でスクロールを止まるようにした。
  47.          05/03    v0.40    フラグデータによる特化で高速化!
  48.             v0.41    少しオプションを追加・変更
  49.                 差分まぐろがエフェクト表示できないバグ修正
  50.  
  51. 【 説  明 】
  52.  
  53.  [Usage] : run386 magl [{/|-}<Option>] <filename> ...
  54.  
  55.         256色/16色の'.MAG'データと、'.MKI'データが展開できます。
  56.         ファイル名の拡張子'.MAG''.MKI'は省略することができ、ワイルドカ
  57.         ードも使用できます。
  58.         また、オプション・ファイルネームの順番は関係ありません。
  59.  
  60.  [Option] : -lm
  61.  
  62.         このオプションにより、CRTC設定・画面クリアを行わずに640×4
  63.         00ドットのDOS互換の画面モードであると信じて展開します。
  64.         MS-DOS上で、このまぐろーだーを実行する場合に、このオプシ
  65.         ョンを指定してください。
  66.         このモードでは、「ぢわっ」と効果は使用できません。
  67.  
  68.              -lv
  69.  
  70.         VRAMに直接展開します。仮想画面からはみ出しデータは見られま
  71.         せん。メモリが足りない時なんかに、使えるかな?(メモリが足りな
  72.         いなんてことは滅多にないでしょうけれど)
  73.         このモードでは、エフェクト機能は使用できません。
  74.         また、クリッピングも行われません(手抜きだけど、そんなには支障
  75.         ないでしょ(と、正当化してしまおう!))
  76.  
  77.              -o [<dx> <dy>]
  78.  
  79.         仮想画面を含めた、画面サイズに入る範囲でロードするときの座標を
  80.         ずらすことができます。-mオプションを指定しない場合は仮想画面10
  81.         24*512、指定した場合は640*400のサイズに入るようにしましょう:)
  82.         セーブ位置情報は無視され、指定された座標を左上とするようにロー
  83.         ドします。座標を省略した時は、(0,0)にロードされます。
  84.  
  85.              -e [<num>]
  86.  
  87.         画面に転送する時エフェクトをかけます。番号を指定しない時は、「
  88.         ぢわっ」と表示を除いたエフェクトをランダムにかけます。DOS互
  89.         換モードとVRAM直接展開モードでは、無効です。
  90.            1 ・・・ ファルコム効果(別名ドラスレ5効果)
  91.            2 ・・・ 左右からスライド効果
  92.            3 ・・・ X1効果
  93.            4 ・・・ ザナドゥ効果
  94.            5 ・・・ モザイク効果
  95.            6 ・・・ 「ぢわっ」と効果
  96.         と6つのエフェクトが選べます(^_^;)内容は見てからのお楽しみ☆
  97.  
  98.              -f <filename>
  99.  
  100.         ディレクトリ順で、指定したファイル以降のデータだけ展開します。
  101.         1つのディレクトリに沢山ファイルがあって、途中までは見たのに
  102.         なぁ…なんて時に、便利でしょう。
  103.  
  104.              -u <string>
  105.  
  106.         指定した文字列をコメント欄に含むデータを展開します。
  107.         文字列の比較の際は、大文字小文字を区別しませんが、漢字の事は
  108.         考慮していないので、文字列に漢字を指定した時、まれに変なマッ
  109.         チングをする可能性があります。
  110.         例えば、
  111.              -u rinn    -u x68k
  112.         などのように、特定ユーザー:-)、特定機種のデータを表示したい時
  113.         に便利でしょう。
  114.  
  115.              -k[{+|-}]
  116.  
  117.         表示後に入力待ち&スクロールをするかどうかのフラグ指定。
  118.         デフォルトでは、入力待ちをします。
  119.         「フラグ指定」のオプションで+/-が無指定の時は、ON<->OFFの
  120.         トグル動作をします。
  121.  
  122.         入力待ち時の操作は以下の通り
  123.            パッド上下左右 ・・・ スクロール
  124.            パッドABボタン ・・・ 拡大・縮小
  125.            パッドSELECT
  126.                 & RUN ・・・ 次のデータ
  127.            マウス上下左右 ・・・ スクロール
  128.            マウスABボタン ・・・ 拡大・縮小
  129.            カーソルキー  ・・・ スクロール
  130.            [space] D    ・・・ 縮小
  131.            [return] Z   ・・・ 拡大
  132.            N        ・・・ 次のデータ
  133.            Q E       ・・・ 終了
  134.         画像の左上以上に左上方向にはスクロールしません。
  135.  
  136.              -c[{+|-}]
  137.  
  138.         表示前に画面を消去するかどうかのフラグ指定。
  139.         デフォルトでは画面消去しません。
  140.  
  141.              -d
  142.  
  143.         コメントの一覧を表示します。
  144.  
  145.              -i
  146.  
  147.         圧縮率・セーブ領域・画面モードなどの詳細情報も、コメントといっ
  148.         しょに表示します。
  149.  
  150.              -#
  151.  
  152.         'magl.exp'のVersionと更新日時の情報を表示します。
  153.  
  154. 【 開発日記 】
  155.  
  156. Version 0.01
  157.  まだまだ、VRAMアクセス部分だけがアセンブラだったりするので、RINNさ
  158. んの98版のPascal版まぐろーだーのスピードぐらいしかでません(^_^;)
  159.  でも、いちおう、部分ロードや、VRAMサイズ(1024*512)までだった
  160. ら表示画面をはみ出す絵の展開(当たり前だね)もできます。
  161.  しかし、仕様書の展開の際のXORの取り方を読み間違えて、下からXORを取っ
  162. て悩んでいました(^_^)
  163.  
  164. Version 0.02
  165. ・・・なんて、書いていたけれど、早くもアセンブラで書き直して高速化しました。
  166. 速い速い!今の98版は、目じゃないよん。でも、まだまだ暫定版なので、やっぱり、
  167. インターフェイスは手抜きなんだよな(^_^;)
  168.  
  169. Version 0.03
  170.  今回はDOS画面対応が目玉です。256色の展開も高速化されているはずだけど、
  171. そもそも展開出来るかどうかわからないし・・・(^_^;)
  172.  仮想画面サイズからはみ出す絵が展開できないのは直っていません。(特にDOS
  173. 互換モードでは640*400までだから問題だな)
  174.  それから、DOS互換モードで256色に対応する予定は全くありません(^_^)
  175.  
  176. Version 0.05
  177.  ふっふっふ、フラグ展開部も一部ループ展開するといいだろうと、XORループに
  178. 続き展開してみました。現在の速度、rinn31a.magを一枚当たり0.841秒で展開だっ!
  179.  ただし、プログラム本体・データともにハードディスク上で、パラメータに10枚指
  180. 定した時のはなし。これを、いちいち、run386の起動までやるようにすると一枚当た
  181. り1.56秒。まあ、プログラムサイズがでかいので仕方がないでしょう。(run386は74K
  182. もある)
  183.  次の改良の予定は、表示後のキー入力待ち&画面拡大・スクロールだっ!
  184.        ̄ ̄
  185.  でも、さらに高速化を狙うかもしれない・・・
  186.  
  187. Version 0.06
  188.  で、高速化を目刺し98版での1パス方式のデコーダーを作ってみたが、結局オリジ
  189. ナルには勝てなかった。私の技術不足か、ループ展開の威力か…
  190.  
  191. Version 0.10
  192.  やっぱり、便利さを追求。MAKIも展開できるようにしました。今ある、FMR
  193. /TOWNS用DOS版ローダーより速いのは当たり前として、MAKIFMTより
  194. も速いんじゃないかな?
  195.  
  196. Version 0.11
  197.  気がついたら、MAGフォーマットが正式公開されていて、私が手に入れた仕様書
  198. と細部が異なる事実が判明!(MAKIchan-NETに入っていないから、井の中の蛙)で、
  199. 早速修正し、ワイルドカードにも対応しました。初の正式公開版となるはず。
  200.  
  201. Version 0.20
  202.  待望の大画面対応です。以前も画面に収まる範囲だけの展開は出来ていたのですが、
  203. ポリシーから、はじいていました。で、このバージョンからはメインメモリに展開し
  204. て、VRAMに転送する方法にして、高速化&大画面対応となったわけです。マウス
  205. でしゃかしゃか見られるのは気持ちいいなぁ。
  206.  
  207. Version 0.30
  208.  一足飛びに、0.30です。今回はエフェクトロード対応で、ファルコム効果(^_^) や、
  209. 「ぢわっ」と表示、左右からスライド表示などのエフェクトをサポート。この「ぢわ
  210. っ」と効果は、EASTさんのご推奨で付けたのだけど、私も気に入ってしまった。
  211.  ともかく、これで、BOWAにも負けないぞっと。
  212.  また、LuckyIIさんの改良版MAGLの高速化アルゴリズムを一部取り入れてみました。
  213.  またまた、ったく☆さんの助言により、簡単にクリッピングができることが判明!
  214.  
  215. Version 0.31
  216.  うっ、前回のバージョンでは万全を期して朝7:00まで徹夜して、ガンバったの
  217. に、やはり、「最後にバグがでる~」っていうことですね(^_^;)
  218.  で、バグフィクスしました。
  219.  
  220. Version 0.35
  221.  で、なかなか確認できなかった「256色データ対応」ですが、やはり展開できず、対
  222. 応しました。う~む、しかしこのサンプルデータは、ちょっとおかしいぞっと。
  223.  どうやら、初期のMSXのデータには一部バグが混入したまま配付されていること
  224. があるようなので、縦長に表示されたり、左端に黒い部分ができたりすることがある
  225. かもしれません。
  226.  でも、私のせいじゃないので、私にそういうバグ報告はしないでね(^_^)
  227.  それから、極一部の強い要望により、画像の左上でスクロールが止まるようにしま
  228. した。
  229.  
  230. Version 0.40 , 0.41
  231.  「大画面のデータを表示すると画面の下に残ってしまうよ~」という声に応えて、
  232. 画面消去オプションをつけてみました。それに併せて、オプションの指定方法もオプ
  233. ションフラグという風にしてみました。
  234.  その他、指定ファイル以降だけの表示、文字列マッチングなども取り入れましたが、
  235. そんな、些細なことは置いておいて、「普通のサイズの絵だったら、1毎当たり0.6秒
  236. で展開」を実現したことが、このバージョンの特徴でしょう。更に、例えば、sky.mag
  237. のような冗長なデータの場合は0.5秒で展開できます。(但し、私の家の旧TOW
  238. NSでの話:平均シークタイム25msのハードディスクでウェイトは標準)
  239.  因みに、まだ、256色展開ルーチンは高速化されていません。
  240.  
  241. 【 転載条件 】
  242.  
  243.  「積極的にレスポンス&バグ報告を転載元にフィードバックすること」
  244.  「バージョンアップの際にも、極力、転載を続けること」
  245.  
  246.     転載に際しては、これ以外の制限は設けません。
  247.  
  248. 【 使用条件 】
  249.  
  250.  まだまだ、バグの可能性が多々残っているので、MAGライブラリなどのプログラ
  251. ムの一部を組み込んで使用することは、基本的に禁止です。どうしても、という場合
  252. には、作者の私に許可を取ってください。
  253.  普通に使用する場合は、一切の条件を規定しません。
  254.  そのかわり、このプログラムによる不都合などの責任は、使用者にあります。
  255.  (そんなことは、ないでしょうけれどね)
  256.  
  257. 【 謝辞 】
  258.  
  259.   フォーマットの考案者W_Rinnさん
  260.   高速化を図ってくれたOh!FM-NETのLuckyIIさん
  261.   「ぢわっ」と効果を推奨してくれた:-)Oh!FM-NETのEASTさん
  262.   まきちゃんネットとの連絡&デバッグのヒントをくれた「ったく☆」さん
  263.  
  264.   どうも、ありがとうございました。
  265.  
  266. 【 雑感 】
  267.  
  268.  まきちゃんねっとで、チェックのため、256色のデータが欲しいよ~と言っても、
  269. 全く音沙汰なし。で、「セーバー誰も作らないからお蔵入りかな?」とのこと。
  270.  せっかく、初の256色データ対応(のはず(^_^;))を作ったので、これは「いっ
  271. ちょやったるか!」なんて思っていたりもします。
  272.  (おおっ、公にしてしまったぞっと)
  273.  
  274. ・・・・なんて書いていたけれど、MSXやMacの256色せーばーの方が先にでき
  275. てしまったようです。やっぱり、256色展開ルーチンにバグが潜んでいたなぁ。とい
  276. うか、実際は勘違いをしていたというのが、真相だけど。(私はてっきり、256色で
  277. も1ピクセルは4ドットだと思っていて、そういう風にコーティングしていた)
  278.  まあ、先は越されたけれど、そのうち256色もできる、TOWNS版まぐせーばー
  279. もできるでしょう。
  280.  
  281.  今回の高速化は、一重に、ったく☆氏が考えついた、「フラグに11hが大量にある
  282. から高速化できる」というアイデアのおかげです。それまでも、ジャンプテーブルを
  283. 採用しようかと迷っていた所だったので、グッドタイミング。おまけに、11hが連続
  284. する時にはメモリを読み出しにいかずに済むというところまで、特化させることに成
  285. 功しました。
  286.  あ~、32ビットレジスタだと1ピクセル丸ごと入ってうれしいなっと。
  287.  
  288.                             -----------------------------------
  289.                MALOR FM-02204@Oh!FMTOWNS-NET    
  290.                                     NBF02121@NIFTY SERVE       
  291.                                     J85     @JATIC町田         
  292.                             -----------------------------------
  293.  
  294.